<?php


namespace app\api\validate;


use app\common\model\goods\Goods;
use app\common\model\order\OrderGoods;
use app\common\validate\BaseValidate;

class GoodsCommentValidate extends BaseValidate
{
    protected $rule = [
        'goods_id' => 'require|checkGoodsId',
        'order_goods_id' => 'require|checkOrderGoodsId',
        'service_comment' => 'require|number|in:1,2,3,4,5',
        'image' => 'array',
    ];

    protected $message = [
        'goods_id.require' => '参数错误',
        'order_goods_id.require' => '参数错误',
        'service_comment.require' => '请给服务评分',
        'service_comment.number' => '服务评分值错误',
        'service_comment.in' => '请给服务评分',
        'image.array' => '图片数据必须为数组结构',
    ];

    public function sceneCommentCategory()
    {
        return $this->only(['goods_id']);
    }

    public function sceneCommentGoodsInfo()
    {
        return $this->only(['order_goods_id']);
    }

    public function sceneAdd()
    {
        return $this->only(['order_goods_id','service_comment','image']);
    }


    /**
     * @notes 检查商品ID
     * @param $value
     * @param $rule
     * @param $data
     * @return bool|string
     * @author ljj
     * @date 2022/2/18 12:05 下午
     */
    public function checkGoodsId($value,$rule,$data)
    {
        $result = Goods::where('id', $value)->findOrEmpty();
        if ($result->isEmpty()) {
            return '商品不存在';
        }

        return true;
    }

    /**
     * @notes 检验订单商品id
     * @param $value
     * @param $rule
     * @param $data
     * @return bool|string
     * @author ljj
     * @date 2022/2/21 6:06 下午
     */
    public function checkOrderGoodsId($value,$rule,$data)
    {
        $result = OrderGoods::where('id', $value)->findOrEmpty();
        if ($result->isEmpty()) {
            return '订单商品不存在';
        }

        return true;
    }
}